package com.techysky.service;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

import com.techysky.entity.DataModule;
import com.techysky.entity.PublicModule;

/**
 * 
 * @author nichao
 * @date 
 * @remark 
 */
public interface DataModuleService extends Serializable {
	
	/**
	 * 根据Id获取实体对象
	 * @param model
	 * @param id
	 * @return
	 */
	public List<DataModule> findByPublicModuleId(String id);

	/**
	 * 查询数据
	 * @param dataModule
	 * @return
	 */
	public List<DataModule> query(DataModule dataModule);

	/**
	 * 
	 * @param dataModule
	 * @return
	 */
	public DataModule saveOrUpdate(DataModule dataModule);

	/**
	 * 
	 * @param string
	 * @return
	 */
	public List<DataModule> findByProjectId(String string);
	
	/**
	 * 
	 * @param dmCode
	 * @return
	 */
	List<DataModule> findByDmCodeAndPublicModuleIdIsNotNull(String dmCode);

	//用户帮助-高级搜索
	public List<Map<String,Object>> getModelIdentCodeList(String pmcode);
	/**
	 * 
	 * @param pmcode
	 * @param dmcode
	 * @return
	 */
	public List<Map<String,Object>> getSystemCodeList(String pmcode,String dmcode);
	/**
	 * 
	 * @param pmcode
	 * @param dmcode
	 * @param systemCode
	 * @return
	 */
	public List<Map<String,Object>> getSubSystemCodeList(String pmcode,String dmcode,String systemCode);
	
	/**
	 * 
	 * @param pmcode
	 * @param dmcode
	 * @param systemCode
	 * @param subSystemCode
	 * @return
	 */
	public List<Map<String,Object>> getAssyCodeList(String pmcode,String dmcode,String systemCode,String subSystemCode);
	
	/**
	 * 
	 * @param pmcode
	 * @param dmcode
	 * @param systemCode
	 * @param subSystemCode
	 * @param assyCode
	 * @return
	 */
	public List<Map<String,Object>> getInfoCodeList(String pmcode,String dmcode,String systemCode,String subSystemCode,String assyCode);
	
	/**
	 * 
	 * @param projectId
	 * @param fitName
	 */
	public void saveOrUpdate(String projectId,String fitName);
	
	/**
	 * 查询用于考试系统通过pm获取所有dm
	 * @return
	 */
	public Map<String,Object> queryAllDm(List<PublicModule> pmList,String title,int page,int size);

	/**
	 * 获取一个数据模块对象
	 * @param id
	 * @return
	 */
	public DataModule getObject(String id);

	/**
	 * 通过pmdm 排序码查询dm
	 * @param index
	 * @return
	 */
	public DataModule getDMByIndex(Integer index);
	
	/**
	 * 根据dmCode查询一条DataModule
	 * @param dmCode
	 * @return
	 */
	public DataModule findByDmCode(String dmCode);

}
